/*! 
 * Header file for a collision algorithm interface.
 *
 * \author Devis Rossini
 * \date 17 April 2012
 */
#ifndef PHXALGORITHMINTERFACE_H_INCLUDE_GUARD
#define PHXALGORITHMINTERFACE_H_INCLUDE_GUARD

#include "PhxCollisionPrimitive.h"

namespace phx
{
	/*! 
	 * Collision algorithm interface.
	 */
	class CollisionAlgorithm
	{
	public:

		/*! 
		 * Constructor.
		 */
		CollisionAlgorithm() { };
		
		/*! 
		 * Destructor (virtual).
		 */
		virtual ~CollisionAlgorithm() { };

		/*!
		 * Collision detection.
		 */
		virtual unsigned CalculateCollision(const CollisionPrimitive* one, const CollisionPrimitive* two) const = 0; 
	};
}

#endif // PHXALGORITHMINTERFACE_H_INCLUDE_GUARD